package com.avic.common.util.ex;

import org.apache.commons.lang3.StringUtils;

/**
 * 业务异常代码;
 * <p>
 * 400 系统级别异常
 * 100 业务异常
 *
 * @author: huangsheng
 * @date: 2017/10/19 上午11:05
 */
public enum BizErrorCode {

    /**
     * 未知异常
     */
    UNKNOWN_ERROR("400999", "未知异常"),

    /**
     * 系统异常
     */
    SYSTEM_ERROR("400400", "系统异常"),

    /**
     * 参数为空
     */
    PARAM_ERROR("100001", "参数错误");


    /**
     * 业务异常码
     */
    private String code;

    /**
     * 业务异常描述
     */
    private String description;


    BizErrorCode(String code, String description) {
        this.code = code;
        this.description = description;
    }

    /**
     * 根据异常码获取异常枚举对象
     *
     * @param code 异常码
     * @return 异常枚举对象
     */
    public static BizErrorCode getByCode(String code) {
        for (BizErrorCode bizErrorCode : values()) {
            if (StringUtils.equals(bizErrorCode.getCode(), code)) {
                return bizErrorCode;
            }
        }

        return null;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
